The present invention relates to packetized data networks, and more particularly, to determining time-of-transmission and time-of-arrival of data packets on a data network.
In order to evaluate the functionality and efficiency of a packetized data network, network software applications often monitor many aspects of packet traffic on the network. For example, in order to determine packet propagation delay (also referred to herein as “transit delay,” “transit time” or “propagation time”) from one point on the network to another, a network software application can time-tag (also referred to herein as “time-stamp”) individual packets as they are transmitted or received and use the time-stamp information to determine propagation time. As used herein, the term “time-tag” or “time-stamp” means to sample a chronometer (or other reference time code source) when the packet is at a particular location in the network, then associate the sampled time code with the packet. Some prior art systems time-stamp the packets that are used in a “ping test” to determine packet propagation delay on a network. A ping test uses echo request packets and echo response packets to create a loop-back test between two stations on a network. FIG. 1 illustrates how a prior art system 10 uses a ping test to determine packet propagation delay. The system 10 includes a first station 12 and a second station 14 that communicate via a network medium 16. Each station includes test application software 18, several layers of intermediate software 20, a medium access controller (MAC) 22, and a physical medium interface (PHY) 24 (e.g., an Ethernet interface). The test application software 18:1 in the first station 12 generates and time-stamps an echo request packet. The application software 18:1 immediately sends the packet through the layers of intermediate software 20:1 (also referred to herein as the “software stack”), the MAC 22:1 and the PHY 24:1, and out to the second station 14 via the network medium 16. When the echo request packet reaches the second station 14, the packet passes through the PHY 24:2, the MAC 22:2, the software stack 20:2, and is received by the application software 18:2. The application software 18:2 compiles an echo response packet and sends the response packet back through the stack 20:2, the MAC 22:2, the PHY 24:2 and out to the first station 12 via the network medium 16. When the echo response packet reaches the first station 12, the packet passes through the PHY 14:1, the MAC 22:1, the stack 20:1 and is received and time-tagged by the application software 18:1. The application software 18:1 calculates the difference between the time-tag of the received echo request packet and the time-tag of the transmitted echo response packet to determine the round-trip propagation delay of the packet.
One disadvantage of such prior art systems is that since the packet time-tagging occurs at the application software 18:1, the propagation times through the software stacks 20:1 and 20:2 are included in the round trip time that the application software 18:1 calculates. The propagation times through the software stacks 20:1 and 20:2 are subject to non-deterministic delays induced by operating systems and software processes. The delays are non-deterministic because the operating systems and software processes are typically multitasking, and thus dependent on instantaneous loading from various external factors. Further, the chronometer that a typical prior art system uses is often software-based, and therefore vulnerable to the same non-deterministic effects that influence the software stacks. Since the delays induced via such prior art time stamping schemes are non-deterministic, accurate arrival and network infrastructure transit times are not possible to predict. An accurate arrival time for packets is of particular interest in communications systems for applications that are delay-bounded, such as voice and video. This is especially true when the inaccuracy in marking transmit and arrival times is greater than the jitter and delay resolution required by real time application.
It is an object of the present invention to substantially overcome the above-identified disadvantages and drawbacks of the prior art.